const express=require('express');                   //express框架
const bodyParser=require('body-parser');            //解析post数据
const cookieParser=require('cookie-parser');        //cookie
const cookieSession=require('cookie-session');      //session
const ejs=require('ejs');                           //模版引擎
const multer=require('multer');                     //储存文件到本地
const mysql=require('mysql');                       //sql数据库
const consolidate=require('consolidate');           //模版引擎的选择
const config=require('./config');                   //配置文件

//创建服务
let server=express();
server.listen(config.port);
// 创建数据库
const db=mysql.createPool({host:config.mysql_host,user:config.mysql_user,password:config.mysql_password,port:config.mysql_port,database:config.mysql_dbname});

server.use((req,res,next)=>{
    req.db=db;
    req.cwd=__dirname;
    res.show404=function(){
        res.status(404)
        res.render('404',{});
    }
    next();
})

// 中间件
// 普通post数据
server.use(bodyParser.urlencoded({extended:false}));
// 文件post数据
let multerObj=multer({dest:'./upload/'});
server.use(multerObj.any());
// cookie
server.use(cookieParser());
// cookie-session
server.use(cookieSession({
    secret:require('./secret/session_key')
}));
//  模版
server.set('html',consolidate.ejs);
server.set('view engine','ejs');
server.set('views','./template');

//处理请求
server.use('/',require('./routes/index'));
server.use('/admin',require('./routes/admin'));
//静态文件
server.use(express.static('./www/'));


server.use((req,res)=>{
    res.show404()
})
